#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
iRobotSC.py - 机器人控制系统主程序
该程序用于加载和运行机器人控制系统的配置，并管理系统的状态机。
"""

from tools import ksw_llrf  
import sys

# 默认配置文件路径
SC_CONF = 'conf/LLRF/KSWLLRF1-1.conf'

def sc_main(conf_file=None):
    """
    系统控制主函数
    
    参数:
        conf_file (str, optional): 配置文件路径。如果为None，则使用默认配置文件。
    
    功能:
        1. 加载配置文件
        2. 初始化系统控制对象
        3. 启动状态机
    """
    sc_conf = SC_CONF
    if conf_file == None:
        print('Loading default configure file ', sc_conf)
    else:
        sc_conf = conf_file
    print("end")
    
    # 加载配置文件并创建系统控制对象
    sc = ksw_llrf.load_configure(sc_conf)
    # 设置配置文件路径
    if conf_file == None:
        sc.conf_file = SC_CONF
    else:
        sc.conf_file = conf_file
    # 启动状态机
    ksw_llrf.sc_state_machine(sc)

def main():
    """
    程序入口函数
    
    功能:
        1. 处理命令行参数
        2. 加载配置文件
        3. 初始化系统控制对象
        4. 启动状态机
    """
    sc_conf = SC_CONF
    cmd_argv = str(sys.argv)
    # 检查命令行参数
    if (len(sys.argv) != 2):
        print('Loading default configure file ', sc_conf)
    else:
        sc_conf = sys.argv[1]
    # 加载配置文件并创建系统控制对象
    sc = ksw_llrf.load_configure(sc_conf)
    # 启动状态机
    ksw_llrf.sc_state_machine(sc)

# 程序入口点
if __name__ == '__main__':
    main()
